package domain

import (
	"github.com/hlhutu/gormplus"
	"ruoyi-go/internal/framework/db"
)

type SysDept struct {
	// 部门ID
	DeptId int `json:"deptId" form:"deptId"`
	// 父部门ID
	ParentId int `json:"parentId" form:"parentId"`
	// 祖级列表
	Ancestors string `json:"ancestors" form:"ancestors"`
	// 部门名称
	DeptName string `json:"deptName" form:"deptName"`
	// 显示顺序
	OrderNum int `json:"orderNum" form:"orderNum"`
	// 负责人
	Leader string `json:"leader" form:"leader"`
	// 联系电话
	Phone string `json:"phone" form:"phone"`
	// 邮箱
	Email string `json:"email" form:"email"`
	// 部门状态:0正常,1停用
	Status string `json:"status" form:"status"`
	// 删除标志（0代表存在 2代表删除）
	DelFlag string `json:"delFlag" form:"delFlag"`

	/**
	冗余字段
	*/

	// 父部门名称
	ParentName string `json:"parentName" form:"parentName" gorm:"-"`
	// 子部门
	Children []*SysDept `json:"children" gorm:"-"`
}

func (m SysDept) TableName() string {
	return "sys_dept"
}

type sysDeptModel struct {
	gormplus.Model[SysDept]
}

var sysDeptModelInst *sysDeptModel

func SysDeptModel() *sysDeptModel {
	if sysDeptModelInst == nil {
		sysDeptModelInst = &sysDeptModel{Model: gormplus.NewModel(SysDept{}, db.GormDB)}
	}
	return sysDeptModelInst
}
